home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / SCREEN.SWG / 0007_GETSTRNG.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  57 lines

  1. Unit scn_io;
  2.  
  3. Interface
  4.  
  5. Procedure GetScreenStr(x, y, l: Integer; Var s: String);
  6.  
  7. Implementation
  8.  
  9. Procedure GetChar(x, y: Integer; Var ch: Char);
  10. (*** gets the Character from screen position x, y;
  11.      x is horizontal co-ord, y is vertical;
  12.      top left corner is 0,0 ***)
  13. Const
  14.   base = $b800;            (* $b000 For mono *)
  15. Var
  16.   screen_Byte: Byte;
  17.   offs: Integer;
  18. begin
  19.   offs := ( (y*80) + x ) * 2;
  20.   screen_Byte := mem[base: offs];
  21.   ch := chr(screen_Byte);
  22. end{proc..};
  23.  
  24. Procedure PutChar(x, y: Integer; ch: Char);
  25. (*** pits the Character ch to screen position x, y; ***)
  26. Const
  27.   base = $b800;            (* $b000 For mono *)
  28. Var
  29.   screen_Byte: Byte;
  30.   offs: Integer;
  31. begin
  32.   offs := ( (y*80) + x ) * 2;
  33.   screen_Byte := ord(ch);
  34.   mem[base: offs] := screen_Byte;
  35. end{proc..};
  36.  
  37. Procedure GetScreenStr(x, y, l: Integer; Var s: String);
  38. (*** gets the String from screen position x,y of length l ***)
  39. Var
  40.   i: Integer;
  41.   ch: Char;
  42. begin
  43.   s := '';
  44.   For i := 1 to l do
  45.   begin
  46.     GetChar(x, y, ch);
  47.     s := s + ch;
  48.     inc(x);
  49.     if x > 79 then
  50.     begin
  51.       inc(y); x:= 0;
  52.     end{if x >..};
  53.   end{For i..}
  54. end{proc..};
  55.  
  56. end{Unit..}.
  57.